View Javadoc

1   package net.sourceforge.simplegamenet.chess;
2   
3   public class ChessBishop extends ChessPiece {
4   
5       public ChessBishop(int participantOwnerIndex, int x, int y) {
6           super(participantOwnerIndex, x, y);
7       }
8   
9       public boolean isMoveAllowed(ChessPiece[] pieceGrid,
10                                   int destinationX, int destinationY) {
11          if (pieceGrid[destinationX * GRID_HEIGHT + destinationY] != null
12                  && pieceGrid[destinationX * GRID_HEIGHT + destinationY]
13                  .getParticipantsOwnerIndex() == participantOwnerIndex) {
14              return false;
15          } else if (Math.abs(x - destinationX) != Math.abs(y - destinationY)) {
16              return false;
17          } else {
18              for (int i = 1; i < Math.abs(x - destinationX); i++) {
19                  if (pieceGrid[(x + (x < destinationX ? i : -i)) * GRID_HEIGHT
20                          + (y + (y < destinationY ? i : -i))] != null) {
21                      return false;
22                  }
23              }
24              return true;
25          }
26      }
27  
28      public int getPieceType() {
29          return ChessPieceType.BISHOP;
30      }
31  
32      public int getPieceValue() {
33          return 3;
34      }
35  
36  }